package com.ww.basic.oop

/**
 * Scala继承需要注意以下几点
 * ①重写一个非抽象方法必须使用override修饰符；
 * ②只有主构造函数才可以往基类的构造函数里写参数；
 * ③在子类中重写超类的抽象方法时，不需要使用override关键字
 */
class Point(xc: Int, yc: Int) {
  var x: Int = xc
  var y: Int = yc

  def move(dx: Int, dy: Int): Unit = {
    x = x + dx
    y = y + dy
    println("x的坐标点：" + x)
    println("y的坐标点：" + y)
  }
}

class Location(val xc: Int, val yc: Int, val zc: Int) extends Point(xc, yc) {
  var z: Int = zc

  def move(dx: Int, dy: Int, dz: Int): Unit = {
    x = x + dx
    y = y + dy
    z = z + dz
    println("x坐标：" + x)
    println("y坐标：" + y)
    println("z坐标：" + z)
  }
}

object Test01 {
  def main(args: Array[String]): Unit = {
    val loc = new Location(10, 20, 15)
    loc.move(10, 10, 15)
  }
}